Modern network interface controller devices feature multiple direct memory access (DMA) channels. In emerging virtualized systems with multi-core, multi-operating system (OS), and/or multi-application architectures, this type of network interface controller allows multiple DMA drivers and/or applications to manage their own DMA resources.
However, the DMA channels in these devices usually share some common resources and, due to such sharing, cannot be independently reset and/or restarted. In the event that for a particular DMA channel, the DMA channel hardware, driver, or attached application needs to be reconfigured or if the software being supported by that DMA channel crashes, there is no graceful way to recover without impacting all users and software associated with all the DMA channels of the network interface controller's DMA services. In the worst case, the entire system can be reset and rebooted from scratch. These devices do not support or provide the desired performance of resetting or restarting a single DMA channel without impacting operations of other DMA channels.